/*
  node是什么？
    不是一门语言，核心是让js能运行在服务端的一个运行时（运行环境），我们可以使用js来实现服务端或工具
  JS：DOM，BOM，ECMAScript
  node中只能使用ECMAScript语法本身，（node提供了内置模块来操作系统，文件） + npm（包管理工具）
  node可以作为中间层，为前端提供更便捷的接口服务，后端没有跨域问题，跨域是浏览器的限制了
  ssr 服务端渲染，解决首屏渲染白屏问题 nest（react），nuxt（vue），node可以解析vue语法，再输出到浏览器
  打包工具：gulp webpack等都是基于node开发的

  node其实做服务端没有优势，刚开始是微了和web密切结合
  node 是主线程是单线程（接收请求的那个线程）
  java是多线程，每个请求都是开一个线程（线程池），请求过多的话会浪费内存，锁的问题（一个一个来），通过实践片切换感觉是并发， 切换时间片也是有性能消耗，java可以利用多线程来实现加密，压缩（CPU密集型）

  node中没有锁，就是一个主线程（内存消耗），如果主线程工作量大会有阻塞问题，不适合CPU密集型，I/O密集，可以开多个子进程，多个进程可以充分利用CPU内核

  高并发都是异步单线程，node本身有个libov库，内部用多线程来实现异步

  异步 非阻塞，同步阻塞（java）
  阻塞和非阻塞是针对调用方
  同步和异步是相对于被调用方
  

*/
